Goal

The objective of this project is to analysis the trends in rental housing market in New Zealand/Aotearoa over the pass 30 years, focusing on rental cost changes and housing afforability. ### Data Scource The data for this analysis is primarily provided from Tenancy Services[https://www.tenancy.govt.nz/about-tenancy-services/data-and-statistics/rental-bond-data/] by public database to provide a comprehensive overview of the market trends.

#tidy up column names Details will appear on Appendix 1.1 
rental.df <- janitor::clean_names(rental.df)

Data Processing

The first thing we need to do is to check our data frame for any missing values, by running following functions.

miss_count = colSums(is.na(rental.df))
rows_with_missing <- which(!complete.cases(rental.df))
missing_col <-rental.df[rows_with_missing, ]

From Appendix 2.1 there is missing value on columns location, so we need to find out does those missing value will effect our process or not. After obverse the relation between rental price and time frame, we can consider it as a separate region

At this stage, we interested rental price trend in different regions over time and the relation between bonds and rental price, hence we can remove some of attributes that is not beneficial for us to analysis the relationship between bonds and rental price. For example duplicate data category, Location_ID and Location; also extra numbers such as upper quartile rent and lower quartile rent. Data detail will attend in appendix 2.2.

# Columns that relate to our analysis
relevant_columns <- c("location", "median_rent", "active_bonds", "time_frame", "closed_bonds","geometric_mean_rent")  
clean.df <- rental.df %>%
  select(all_of(relevant_columns))%>%
  mutate(median_rent=replace_na(median_rent,median(median_rent, na.rm = TRUE)))  

Data Explorations

In this section, we will look at the rental market trend in Auckland region in pass 30 years. the general trend of north island, south island and entire New Zealand will in the Appendices sections. ##### Trend analysis of rental prices in AUCKLAND region

auckland <- clean.df %>% filter(location == 'Auckland')
# time series plot of rental price 
ggplot(auckland, aes(x = time_frame)) +
  geom_line(aes(y = median_rent, group = location), color = 'red') +
  geom_line(aes(y = geometric_mean_rent, group = location), color = 'blue')+
  labs(tiele="Relation between time frame and rental price",
       x= "years",
       y='prices')+
      scale_color_manual(values = c('red','blue'),
                         name = 'figure types',
                         labels=c('Median', 'Geometric Mean'))

The graph above depicts the trends in Auckland’s rental market over the last thirty years. It indicates a gradual increase in rental costs over decades, with a noticeable acceleration beginning in 2010. This increase of price rise reflects substantial market shifts in recent years.Furthermore, for additional insights into rental price trends across New Zealand, refer to Appendix 3.x. This section provides comprehensive data on rental prices for various regions, including the entire country (3.1), North Island (3.2), South Island (3.3), as well as specific cities such as Wellington (3.4), Christchurch (3.5), and Hamilton (3.6).

rental price variability of AUCKLAND region
#Boxplot  
ggplot(auckland, aes(x = location)) + 
  geom_boxplot(aes(y = median_rent, fill = "Median Rent"), alpha = 0.5) +
  geom_boxplot(aes(y = geometric_mean_rent, fill = "Geometric Mean Rent"), alpha = 0.5) +
  labs(title = "Boxplot of Rental Prices in Auckland",
       x = "Location",
       y = "Rent") +
  scale_fill_manual(values = c("red", "blue"),
                    name = "Rent Type",
                    labels = c("Median Rent", "Geometric Mean Rent"))

The box plot shows the dispersion of median rental prices over the previous 30 years, with a median price of around $350. The first quartile is approximately $280, implying that 25% of prices are below this number, whilst the third quartile is around $500, implying that 75% of costs are below this higher barrier. For further insights into regional rental price distributions, refer to Appendix 3.7 for the North Island and Appendix 3.8 for the South Island, where additional box plots provide detailed visualizations of median rental prices.

relation between BOND type and rental market of AUCKLAND region
ggplot(auckland, aes(x = active_bonds)) +
  geom_point(aes(y = median_rent, color = 'Median Rent', group = location)) +
  geom_point(aes(y = geometric_mean_rent, color = 'Geometric Mean Rent', group = location)) +
  labs(title = "Relation between Active Bonds and Rental Price",
       x = "Active Bonds",
       y = "Prices") +
  scale_color_manual(values = c("red", "blue"),
                     name = "Rent Type",
                     labels = c("Median Rent", "Geometric Mean Rent"))

ggplot(auckland, aes(x = closed_bonds)) +
  geom_point(aes(y = median_rent, color = 'Median Rent', group = location)) +
  geom_point(aes(y = geometric_mean_rent, color = 'Geometric Mean Rent', group = location)) +
  labs(title = "Relation between Closed Bonds and Rental Price",
       x = "Active Bonds",
       y = "Prices") +
  scale_color_manual(values = c("red", "blue"),
                     name = "Rent Type",
                     labels = c("Median Rent", "Geometric Mean Rent"))

The pair of charts presented above clearly depict a stronger correlation between rental prices and active bonds compared to closed bonds. This observation suggests that active bonds, which signify ongoing tenancies, hold greater relevance to current market conditions and exert a more substantial influence on rental pricing dynamics.

For deeper insights into the relationship between rental prices and active bonds, please consult Appendix 3.9 for the North Island and Appendix 3.10 for the South Island. These appendices provide additional analysis and visualizations to further elucidate the connection between rental prices and active bonds across different regions.

Analytican Plan

he goal of this project is to analysis the trend in the rental housing market in New Zealand in pass 30 years, with a particular focus on changes in rental costs and housing affordability.

The primary analysis proposed are:

#conver to Date format
auckland$time_frame <- as.Date(auckland$time_frame)
#creates time series object
ts_data <- ts(auckland$median_rent, frequency = 12)
#decompposes time series into trend 
decomp <- decompose(ts_data)
lm_model <- lm(median_rent ~ time_frame, data = auckland)
latest_date <- max(auckland$time_frame)
# Generate a sequence of 12 months starting from the latest date
future_dates <- seq(latest_date, by = "1 month", length.out = 12)
future_data <- data.frame(time_frame = future_dates)
# predict valure of feature value refer to Appendix 4.2
pred_val <- predict(lm_model, newdata = future_data,, interval = "prediction")
# Drop off row associate with region labeled ALL
clean.df <- clean.df %>% 
  mutate(year = lubridate::year(time_frame)) %>% 
  filter(location != 'ALL')

# Group by year and location, calculate median rental price for each group
median_rent_by_year_region <- clean.df %>%
  group_by(year, location) %>%
  summarise(median_rent = median(median_rent, na.rm = TRUE), .groups = "drop")



income1 <- income[, c('Quarter', 'Total')] %>% 
  mutate(Quarter = as.Date(as.yearmon(Quarter, format = "%b-%y")),
         Quarter = format(Quarter, "%Y"),
         `names<-`(., c("year", "Salary")))

merged_data <- merge(income1, median_rent_by_year_region, by = "year")

merged_data <- merged_data %>% 
 mutate(affordability_label =ifelse(median_rent / Salary > 0.30, "Un_affordable", "Affordable"))


affordable_region <- merged_data %>% 
                          filter(affordability_label =='Affordable')# Appendix 4.3

un_aff_regin <- merged_data %>%  filter(affordability_label=='Un_affordable') # Appendix 4.3

In addition to housing quality, general economics and the influence of government policies are important aspects to consider while modeling. Because evaluating housing quality is difficult, economic indices such as the consumers price index(CPI) provide useful insights into larger economic patterns. By combining such indicators, we get a better understanding of how economic issues influence rental market dynamics.

CPI <- janitor::clean_names(CPI)
CPI <- CPI %>% select("period", "series_title_1", "data_value") %>%    filter(series_title_1 == "Housing and household utilities") %>%    
    mutate(year = as.integer(substr(period, 1, 4))) %>% 
     group_by(year) %>% 
    summarise(average_value = mean(data_value, na.rm = TRUE))

   
backup <- rental.df %>%   mutate(year = lubridate::year(time_frame))
merged_CPI  = merge(CPI, backup, by="year")

reg_model <- lm(median_rent ~average_value + active_bonds + location, data = merged_CPI)# 4.

Discussion

Strength:
  • Long-term data availability: This data collection spans more than 30 years, offering a comprehensive historical view on rental markets.

  • Geographic Information: This data collection contains information on several regions of New Zealand/Aotearoa, allowing me to analyze data for regional rental costs.

  • Comprehensive Variables: The data set includes several variables related to rental pricing, bond activity, and time frames, offering a comprehensive perspective of the rental market.

Limitations:

  • Missing Data: Missing data, particularly in the location columns, may introduce bias or reduce the analysis’s thoroughness.

  • Scope of Variable: Even though the data set covers many factors related to the rental market, there may be some hidden factors that are not included, such as housing quality or demographic changes, which will have a substantial influence on the rental market but have not yet been recorded.

Navigating the complexities of the property market shows a world full of subtleties and imbalances. However, our whole examine reveals a compelling narrative: a perceptible rise in growth over the last decade, contrasted with a somewhat more muted trend in the previous two decades. This insight emphasizes the market’s dynamic nature, marked by swings and evolutionary movements.

Appendix

Appendix 1.1 Data Source:
glimpse(rental.df)
## Rows: 24,914
## Columns: 11
## $ time_frame              <date> 1993-02-01, 1993-02-01, 1993-02-01, 1993-02-0…
## $ location_id             <dbl> -99, -1, 1, 2, 3, 11, 12, 13, 15, 16, 17, 19, …
## $ location                <chr> "ALL", NA, "Far North District", "Whangarei Di…
## $ lodged_bonds            <dbl> 9144, 372, 45, 120, 12, 42, 24, 57, 36, 567, 5…
## $ active_bonds            <dbl> 91620, 4767, 444, 1221, 102, 300, 189, 585, 37…
## $ closed_bonds            <dbl> 7119, 321, 24, 105, 12, 21, 15, 48, 30, 426, 4…
## $ median_rent             <dbl> 150, 130, 120, 120, 118, 120, 120, 110, 120, 1…
## $ geometric_mean_rent     <dbl> 151, 125, 112, 121, 113, 122, 118, 107, 110, 1…
## $ upper_quartile_rent     <dbl> 200, 160, 140, 150, 121, 145, 135, 130, 130, 1…
## $ lower_quartile_rent     <dbl> 120, 100, 95, 100, 98, 100, 115, 100, 100, 100…
## $ log_std_dev_weekly_rent <dbl> 0.43, 0.46, 0.30, 0.30, 0.31, 0.29, 0.22, 0.25…

Appendix 2.1 missing data

miss_count
##              time_frame             location_id                location 
##                       0                       0                     373 
##            lodged_bonds            active_bonds            closed_bonds 
##                       0                       0                       0 
##             median_rent     geometric_mean_rent     upper_quartile_rent 
##                       0                       0                       0 
##     lower_quartile_rent log_std_dev_weekly_rent 
##                       0                       0

appendix 2.2

glimpse(clean.df)
## Rows: 24,168
## Columns: 7
## $ location            <chr> "Far North District", "Whangarei District", "Kaipa…
## $ median_rent         <dbl> 120, 120, 118, 120, 120, 110, 120, 125, 140, 100, …
## $ active_bonds        <dbl> 444, 1221, 102, 300, 189, 585, 375, 4881, 552, 450…
## $ time_frame          <date> 1993-02-01, 1993-02-01, 1993-02-01, 1993-02-01, 1…
## $ closed_bonds        <dbl> 24, 105, 12, 21, 15, 48, 30, 426, 45, 39, 6, 60, 2…
## $ geometric_mean_rent <dbl> 112, 121, 113, 122, 118, 107, 110, 131, 133, 90, 8…
## $ year                <dbl> 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 19…
summary(rental.df)
##    time_frame          location_id       location          lodged_bonds    
##  Min.   :1993-02-01   Min.   :-99.00   Length:24914       Min.   :    6.0  
##  1st Qu.:2001-02-01   1st Qu.: 23.00   Class :character   1st Qu.:   24.0  
##  Median :2008-10-01   Median : 40.00   Mode  :character   Median :   66.0  
##  Mean   :2008-09-21   Mean   : 38.54                      Mean   :  394.8  
##  3rd Qu.:2016-06-01   3rd Qu.: 57.00                      3rd Qu.:  147.0  
##  Max.   :2024-02-01   Max.   : 76.00                      Max.   :18111.0  
##   active_bonds     closed_bonds      median_rent    geometric_mean_rent
##  Min.   :    33   Min.   :    0.0   Min.   : 38.0   Min.   : 43.0      
##  1st Qu.:   468   1st Qu.:   21.0   1st Qu.:153.0   1st Qu.:151.0      
##  Median :  1314   Median :   63.0   Median :220.0   Median :213.0      
##  Mean   :  8054   Mean   :  368.8   Mean   :248.2   Mean   :239.7      
##  3rd Qu.:  2961   3rd Qu.:  138.0   3rd Qu.:310.0   3rd Qu.:301.0      
##  Max.   :412560   Max.   :17145.0   Max.   :750.0   Max.   :708.0      
##  upper_quartile_rent lower_quartile_rent log_std_dev_weekly_rent
##  Min.   : 63.0       Min.   : 29.0       Min.   :0.0300         
##  1st Qu.:179.0       1st Qu.:130.0       1st Qu.:0.2400         
##  Median :251.0       Median :180.0       Median :0.2900         
##  Mean   :288.9       Mean   :206.3       Mean   :0.2939         
##  3rd Qu.:365.0       3rd Qu.:253.0       3rd Qu.:0.3400         
##  Max.   :950.0       Max.   :620.0       Max.   :1.1200
Appendix 3.1 Entire NZ propetery status:
ggplot(clean.df, aes(x = time_frame)) +
  geom_line(aes(y = median_rent, group = location), color = 'red') +
  geom_line(aes(y = geometric_mean_rent, group = location), color = 'blue')+
  labs(title="Relation between time frame and rental price",
       x= "years",
       y='prices')+
      scale_color_manual(values = c('red','blue'),
                         name = 'figure types',
                         labels=c('Median', 'Geometric Mean'))

Appendix 3.2 North island
# north island :
north <- clean.df %>% filter(location %in% north_island_cities)
ggplot(north, aes(x = time_frame)) +
  geom_line(aes(y = median_rent, group = location), color = 'red') +
  geom_line(aes(y = geometric_mean_rent, group = location), color = 'blue')+
  labs(tiele="Relation between time frame and rental price",
       x= "years",
       y='prices')+theme_minimal()

##### Appendix 3.3 South island

# south island:
south <- clean.df %>%  filter(location %in% south_island_cities)
ggplot(south, aes(x = time_frame)) +
  geom_line(aes(y = median_rent, group = location), color = 'red') +
  geom_line(aes(y = geometric_mean_rent, group = location), color = 'blue')+
  labs(tiele="Relation between time frame and rental price",
       x= "years",
       y='prices') + theme_minimal()

# few major cites:
Appendix 3.4 Wellington
# Wellington 
wellington <- clean.df %>% filter(location == 'Wellington City')

ggplot(wellington, aes(x = time_frame)) +
  geom_line(aes(y = median_rent, group = location), color = 'red') +
  geom_line(aes(y = geometric_mean_rent, group = location), color = 'blue')+
  labs(tiele="Relation between time frame and rental price",
       x= "years",
       y='prices')

##### Appendix 3.5 Christchurch

christchurch <- clean.df %>%  filter(location == 'Christchurch City')
ggplot(christchurch, aes(x = time_frame)) +
  geom_line(aes(y = median_rent, group = location), color = 'red') +
  geom_line(aes(y = geometric_mean_rent, group = location), color = 'blue')+
  labs(tiele="Relation between time frame and rental price",
       x= "years",
       y='prices')

##### Appendix 3.6 Hamilton

hamilton <- clean.df %>% filter(location == 'Hamilton City')
ggplot(hamilton, aes(x = time_frame)) +
  geom_line(aes(y = median_rent, group = location), color = 'red') +
  geom_line(aes(y = geometric_mean_rent, group = location), color = 'blue')+
  labs(tiele="Relation between time frame and rental price",
       x= "years",
       y='prices')

Appendix 3.7 North island
ggplot(north, aes(x = location)) + 
  geom_boxplot(aes(y = median_rent, fill = "Median Rent"), alpha = 0.5) +
  geom_boxplot(aes(y = geometric_mean_rent, fill = "Geometric Mean Rent"), alpha = 0.5) +
  labs(title = "Boxplot of Rental Prices in Auckland",
       x = "Location",
       y = "Rent") +
  scale_fill_manual(values = c("red", "blue"),
                    name = "Rent Type",
                    labels = c("Median Rent", "Geometric Mean Rent"))

Appendix 3.8 South Island
ggplot(south, aes(x = location)) + 
  geom_boxplot(aes(y = median_rent, fill = "Median Rent"), alpha = 0.5) +
  geom_boxplot(aes(y = geometric_mean_rent, fill = "Geometric Mean Rent"), alpha = 0.5) +
  labs(title = "Boxplot of Rental Prices in Auckland",
       x = "Location",
       y = "Rent") +
  scale_fill_manual(values = c("red", "blue"),
                    name = "Rent Type",
                    labels = c("Median Rent", "Geometric Mean Rent"))

Appendix 3.9 North island
ggplot(north, aes(x = active_bonds)) +
  geom_point(aes(y = median_rent, color = 'Median Rent', group = location)) +
  geom_point(aes(y = geometric_mean_rent, color = 'Geometric Mean Rent', group = location)) +
  labs(title = "Relation between Active Bonds and Rental Price",
       x = "Active Bonds",
       y = "Prices") +
  scale_color_manual(values = c("red", "blue"),
                     name = "Rent Type",
                     labels = c("Median Rent", "Geometric Mean Rent"))

ggplot(north, aes(x = closed_bonds)) +
  geom_point(aes(y = median_rent, color = 'Median Rent', group = location)) +
  geom_point(aes(y = geometric_mean_rent, color = 'Geometric Mean Rent', group = location)) +
  labs(title = "Relation between Closed Bonds and Rental Price",
       x = "Active Bonds",
       y = "Prices") +
  scale_color_manual(values = c("red", "blue"),
                     name = "Rent Type",
                     labels = c("Median Rent", "Geometric Mean Rent"))

Appendix 3.10 South island
ggplot(south, aes(x = active_bonds)) +
  geom_point(aes(y = median_rent, color = 'Median Rent', group = location)) +
  geom_point(aes(y = geometric_mean_rent, color = 'Geometric Mean Rent', group = location)) +
  labs(title = "Relation between Active Bonds and Rental Price",
       x = "Active Bonds",
       y = "Prices") +
  scale_color_manual(values = c("red", "blue"),
                     name = "Rent Type",
                     labels = c("Median Rent", "Geometric Mean Rent"))

ggplot(south, aes(x = closed_bonds)) +
  geom_point(aes(y = median_rent, color = 'Median Rent', group = location)) +
  geom_point(aes(y = geometric_mean_rent, color = 'Geometric Mean Rent', group = location)) +
  labs(title = "Relation between Closed Bonds and Rental Price",
       x = "Active Bonds",
       y = "Prices") +
  scale_color_manual(values = c("red", "blue"),
                     name = "Rent Type",
                     labels = c("Median Rent", "Geometric Mean Rent"))

4.1 Decompose
plot(decomp)

##### Appendix 4.2 Predictions

pred_val_df <- data.frame(
  Month = 1:12,
  fit = pred_val[, 1],  # Extracting the fit values
  lwr = pred_val[, 2],  # Extracting the lower bound
  upr = pred_val[, 3]   # Extracting the upper bound
)
ggplot(pred_val_df, aes(x = Month)) +
  geom_point(aes(y = fit), color = "blue") +
  geom_line(aes(y = fit), color = "blue") +
  labs(x = "Month", y = "Predicted Rental Prices") +
  ggtitle("Predicted Rental Prices for the Next 12 Months")

Appendix 4.3 affordable region list

print(affordable_region)
## [1] year                Quarter             Total              
## [4] Salary              location            median_rent        
## [7] affordability_label
## <0 rows> (or 0-length row.names)

Appendix 4.4 un-affordable region list

print(un_aff_regin)
## [1] year                Quarter             Total              
## [4] Salary              location            median_rent        
## [7] affordability_label
## <0 rows> (or 0-length row.names)
Appendix 4.5 CPI regression
summary(reg_model)
## 
## Call:
## lm(formula = median_rent ~ average_value + active_bonds + location, 
##     data = merged_CPI)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -249.44  -21.17   -1.89   18.12  335.33 
## 
## Coefficients:
##                                          Estimate Std. Error t value Pr(>|t|)
## (Intercept)                            -1.050e+02  8.166e+00 -12.853  < 2e-16
## average_value                           4.387e-01  1.083e-03 405.097  < 2e-16
## active_bonds                            2.334e-04  2.683e-05   8.701  < 2e-16
## locationAshburton District             -5.332e+00  8.503e+00  -0.627 0.530645
## locationAuckland                        1.159e+02  5.858e+00  19.790  < 2e-16
## locationBuller District                -5.880e+01  8.524e+00  -6.899 5.40e-12
## locationCarterton District             -1.365e+01  8.529e+00  -1.600 0.109547
## locationCentral Hawke's Bay District   -4.412e+01  8.522e+00  -5.177 2.27e-07
## locationCentral Otago District          1.992e+01  8.511e+00   2.340 0.019270
## locationChristchurch City               4.740e+01  7.805e+00   6.073 1.28e-09
## locationClutha District                -7.265e+01  8.522e+00  -8.525  < 2e-16
## locationDunedin City                    2.309e+00  8.288e+00   0.279 0.780568
## locationFar North District             -6.309e+00  8.473e+00  -0.745 0.456501
## locationGisborne District               1.081e+00  8.474e+00   0.128 0.898532
## locationGore District                  -7.930e+01  8.518e+00  -9.310  < 2e-16
## locationGrey District                  -3.352e+01  8.521e+00  -3.934 8.39e-05
## locationHamilton City                   4.777e+01  8.165e+00   5.851 4.96e-09
## locationHastings District               2.414e+01  8.435e+00   2.862 0.004213
## locationHauraki District               -1.015e+01  8.514e+00  -1.193 0.233070
## locationHorowhenua District            -3.072e+01  8.488e+00  -3.619 0.000296
## locationHurunui District               -1.155e+01  8.526e+00  -1.355 0.175553
## locationInvercargill City              -4.715e+01  8.446e+00  -5.582 2.40e-08
## locationKaikoura District              -2.105e+01  8.580e+00  -2.454 0.014134
## locationKaipara District               -6.306e+00  8.516e+00  -0.741 0.458991
## locationKapiti Coast District           5.971e+01  8.462e+00   7.057 1.76e-12
## locationKawerau District               -5.971e+01  8.524e+00  -7.005 2.55e-12
## locationLower Hutt City                 6.428e+01  8.375e+00   7.675 1.73e-14
## locationMackenzie District             -5.853e+01  8.577e+00  -6.824 9.09e-12
## locationManawatu District              -7.055e-01  8.505e+00  -0.083 0.933893
## locationMarlborough District            2.393e+01  8.476e+00   2.823 0.004764
## locationMasterton District             -1.221e+01  8.500e+00  -1.437 0.150815
## locationMatamata-Piako District         5.317e+00  8.500e+00   0.625 0.531663
## locationNapier City                     4.864e+01  8.442e+00   5.762 8.45e-09
## locationNelson City                     4.553e+01  8.442e+00   5.393 6.99e-08
## locationNew Plymouth District           2.733e+01  8.423e+00   3.244 0.001180
## locationOpotiki District               -5.643e+01  8.527e+00  -6.617 3.75e-11
## locationOtorohanga District            -3.297e+01  8.541e+00  -3.860 0.000114
## locationPalmerston North City           1.110e+01  8.368e+00   1.327 0.184626
## locationPorirua City                    8.905e+01  8.473e+00  10.509  < 2e-16
## locationQueenstown-Lakes District       1.360e+02  8.458e+00  16.077  < 2e-16
## locationRangitikei District            -6.610e+01  8.520e+00  -7.759 9.00e-15
## locationRotorua District                6.938e+00  8.405e+00   0.825 0.409113
## locationRuapehu District               -8.198e+01  8.518e+00  -9.624  < 2e-16
## locationSelwyn District                 1.052e+02  8.506e+00  12.369  < 2e-16
## locationSouth Taranaki District        -4.123e+01  8.503e+00  -4.849 1.25e-06
## locationSouth Waikato District         -6.390e+01  8.499e+00  -7.519 5.76e-14
## locationSouth Wairarapa District        9.650e-01  8.526e+00   0.113 0.909888
## locationSouthland District             -6.757e+01  8.519e+00  -7.931 2.28e-15
## locationStratford District             -4.645e+01  8.525e+00  -5.449 5.13e-08
## locationTararua District               -7.266e+01  8.517e+00  -8.531  < 2e-16
## locationTasman District                 5.133e+01  8.489e+00   6.047 1.51e-09
## locationTaupo District                  2.171e+01  8.474e+00   2.562 0.010412
## locationTauranga City                   8.946e+01  8.300e+00  10.778  < 2e-16
## locationThames-Coromandel District      7.777e+00  8.498e+00   0.915 0.360132
## locationTimaru District                -2.718e+01  8.482e+00  -3.205 0.001354
## locationUpper Hutt City                 4.781e+01  8.475e+00   5.641 1.71e-08
## locationWaikato District                2.706e+01  8.469e+00   3.195 0.001401
## locationWaimakariri District            6.140e+01  8.492e+00   7.231 4.97e-13
## locationWaimate District               -7.155e+01  8.568e+00  -8.351  < 2e-16
## locationWaipa District                  4.734e+01  8.478e+00   5.584 2.38e-08
## locationWairoa District                -8.577e+01  8.528e+00 -10.058  < 2e-16
## locationWaitaki District               -4.152e+01  8.513e+00  -4.877 1.09e-06
## locationWaitomo District               -6.290e+01  8.530e+00  -7.373 1.73e-13
## locationWellington City                 1.255e+02  8.013e+00  15.663  < 2e-16
## locationWestern Bay of Plenty District  3.486e+01  8.490e+00   4.106 4.04e-05
## locationWestland District              -5.135e+01  8.530e+00  -6.020 1.78e-09
## locationWhakatane District              1.716e+01  8.492e+00   2.020 0.043379
## locationWhanganui District             -4.363e+01  8.467e+00  -5.153 2.58e-07
## locationWhangarei District              3.507e+01  8.411e+00   4.170 3.06e-05
##                                           
## (Intercept)                            ***
## average_value                          ***
## active_bonds                           ***
## locationAshburton District                
## locationAuckland                       ***
## locationBuller District                ***
## locationCarterton District                
## locationCentral Hawke's Bay District   ***
## locationCentral Otago District         *  
## locationChristchurch City              ***
## locationClutha District                ***
## locationDunedin City                      
## locationFar North District                
## locationGisborne District                 
## locationGore District                  ***
## locationGrey District                  ***
## locationHamilton City                  ***
## locationHastings District              ** 
## locationHauraki District                  
## locationHorowhenua District            ***
## locationHurunui District                  
## locationInvercargill City              ***
## locationKaikoura District              *  
## locationKaipara District                  
## locationKapiti Coast District          ***
## locationKawerau District               ***
## locationLower Hutt City                ***
## locationMackenzie District             ***
## locationManawatu District                 
## locationMarlborough District           ** 
## locationMasterton District                
## locationMatamata-Piako District           
## locationNapier City                    ***
## locationNelson City                    ***
## locationNew Plymouth District          ** 
## locationOpotiki District               ***
## locationOtorohanga District            ***
## locationPalmerston North City             
## locationPorirua City                   ***
## locationQueenstown-Lakes District      ***
## locationRangitikei District            ***
## locationRotorua District                  
## locationRuapehu District               ***
## locationSelwyn District                ***
## locationSouth Taranaki District        ***
## locationSouth Waikato District         ***
## locationSouth Wairarapa District          
## locationSouthland District             ***
## locationStratford District             ***
## locationTararua District               ***
## locationTasman District                ***
## locationTaupo District                 *  
## locationTauranga City                  ***
## locationThames-Coromandel District        
## locationTimaru District                ** 
## locationUpper Hutt City                ***
## locationWaikato District               ** 
## locationWaimakariri District           ***
## locationWaimate District               ***
## locationWaipa District                 ***
## locationWairoa District                ***
## locationWaitaki District               ***
## locationWaitomo District               ***
## locationWellington City                ***
## locationWestern Bay of Plenty District ***
## locationWestland District              ***
## locationWhakatane District             *  
## locationWhanganui District             ***
## locationWhangarei District             ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 33.53 on 19981 degrees of freedom
##   (302 observations deleted due to missingness)
## Multiple R-squared:  0.9199, Adjusted R-squared:  0.9196 
## F-statistic:  3373 on 68 and 19981 DF,  p-value: < 2.2e-16
coefplot(reg_model)